#include <math.h>

void mx4transform(float x, float y, float z, float w, const float*pM, float* pDest);
void multiplyMV(float* r, const float* lhs, const float* rhs);
void multiplyMM(float* r, int rOffset, const float* lhs, int lhsOffset,
		const float* rhs, int rhsOffset);
float length(float x, float y, float z);
void setIdentityM(float* sm, int smOffset);
void translateM(float* m, int mOffset,	float x, float y, float z);
void setRotateM(float* rm, int rmOffset, float a, float x, float y, float z);
void rotateM(float* m, int mOffset,
		float a, float x, float y, float z);
void setLookAtM(float* rm, int rmOffset,
		float eyeX, float eyeY, float eyeZ,
		float centerX, float centerY, float centerZ, float upX, float upY,
		float upZ);
void frustumM(float* m, int offset,
		float left, float right, float bottom, float top,
		float near, float far);
